1. Technical Field
The present invention is directed to the field of electronic spreadsheets and more particularly to a method, system and computer program for hiding sensitive data within models in an electronic spreadsheet environment.
2. Related Art
Before computers, numerical analyses, particularly financial ones, were usually prepared on an accountant's columnar pad or spreadsheet, with pencil and calculator in hand. By organizing data into columns and rows, spreadsheets afford the rapid assimilation of information by a reader. The task of preparing a spreadsheet on paper, however, is not quite so fast. Instead, the process tends to be very slow, as each entry must be tediously calculated and entered into the spreadsheet. Manually prepared spreadsheets are also prone to errors. Hence, preparation of spreadsheets by hand is slow, tedious, and unreliable.
With the advent of microcomputers, a solution was forthcoming in the form of “electronic spreadsheets.” Better known simply as “spreadsheets,” these software programs provide a computerized replacement for the traditional financial modeling tools: the accountant's columnar pad, pencil, and calculator. In some regards, spreadsheet programs are to those tools what word processors are to typewriters. Spreadsheets offer dramatic improvements in ease of creating, editing, and using financial models.
A typical spreadsheet program configures the memory of a computer to resemble the column/row or grid format of an accountant's columnar pad, thus providing a visible calculator for a user. Because this “pad” exists dynamically in the computer's memory, however, it differs from paper pads in several important ways. Locations in the electronic spreadsheet, for example, must be communicated to the computer in a format which it can understand. A common scheme for accomplishing this is to assign a number to each row in a spreadsheet, and a letter to each column. To reference a location at column A and row 1 (i.e., the upper-left-hand corner), the user types in “A1”. In this manner, the spreadsheet defines an addressable storage location or “cell” at each intersection of a row with a column.
Data entry into an electronic spreadsheet occurs in much the same manner that information would be entered on an accountant's pad. After a screen cursor is positioned at a desired location, the user can enter alphanumeric information. Besides holding text and numeric information, however, spreadsheet cells can store special instructions or “formulas” specifying calculations to be performed on the numbers stored in spreadsheet cells. In this fashion, cell references can serve as variables in an equation, thereby allowing precise mathematical relationships to be defined between cells. The structure and operation of a spreadsheet program, including advanced functions such as functions and macros, are documented in the technical, trade, and patent literature. For an overview, see e.g., Cobb, S., Using Quattro Pro 2, Borland-OsborneIMcGraw-Mll, 1990; and LeBlond, G. and Cobb, D., Using 1-2-3, Que corp., 1985. The disclosures of each of the foregoing are hereby incorporated by reference.
Electronic spreadsheets offer many advantages over their paper counterparts. For one, electronic spreadsheets are much larger (i.e., hold more information) than their paper counterparts; electronic spreadsheets having thousands or even millions of cells are not uncommon. Spreadsheet programs also allow users to perform “what-if” scenarios. After a set of computational relationships has been entered into a worksheet, thanks to imbedded formulas for instance, the spread of information can be recalculated using different sets of assumptions, with the results of each recalculation appearing almost instantaneously. Performing this operation manually, with paper and pencil, would require the recalculation of every relationship in the model with each change made. Electronic spreadsheet systems are well suited to solve “what-if” problems, that is, changing an input and seeing what happens to an output.
Electronic spreadsheets are commonly used for implementing costing and pricing tools, typically for service oriented offerings. Such tools are simply an implementation of a model (either a costing model or a pricing model) featuring a set of output data, based on a set of input data.
Costing/pricing models can be quite complex and the resulting spreadsheet tool can also be complex, involving a large number of formulas spreading across different sheets. Such formulas involve intermediary results, themselves involving either input data or other intermediary data. If a costing/pricing tool spreadsheet is disclosed to a person, this person can easily “reverse engineer” this tool to determine all the different intermediary results which are part of the model. Such intermediary results can contain confidential information that the costing/pricing tool spreadsheet author does not want to share with third parties. Nevertheless the costing/pricing tool spreadsheet author may want to share a tool which produces the output data when fed with the input data.
A typical example corresponding to this case is the following. Assume that a company X is currently delivering an offering through direct sales channel, and wants to rely on indirect channels, like business partners, to reach a wider opportunity base. If an internal cost/price model is disclosed to a business partner, then this business partner will easily access information that this company X refuses to disclose. On the contrary, every effort must be done by the company X to give to this business partner all the relevant tools streamlining the sales cycle, such as a costing/pricing tool.
This dilemma cannot be solved with conventional spreadsheet tools, since spreadsheet protection can easily be broken by cracks available on the Internet.